package com.kc.gb.device.common.adapter.feigns;

import com.kc.gb.base.dto.Result;
import com.kc.gb.device.common.adapter.dto.basic.rack.SimpleRackSelection;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(value = "basic-rack",url = "${hostIP}")
public interface BasicRackFeignClient {

    // @RequestMapping(method = {RequestMethod.POST}, value={"api/basic/warehouse/{warehouseId}/rack/v2/updatePosition"})
    // public Result<Void> updatePosition(@PathVariable(name="warehouseId", required=true)  java.lang.Long warehouseId, @RequestBody  com.kc.phoenix.basic.model.dto.rack.UpdatePositionRequest request);

    // @RequestMapping(method = {RequestMethod.POST}, value={"api/basic/warehouse/{warehouseId}/rack/simple-query"})
    // public Result<java.util.List<com.kc.gb.device.common.adapter.dto.basic.rack.SimpleRackDto>> querySimpleRack(@PathVariable Long warehouseId, @RequestBody SimpleRackSelection selection);

    // @RequestMapping(method = {RequestMethod.POST}, value={"api/basic/warehouse/{warehouseId}/rack/v2/entrance"})
    // public Result<java.lang.Void> entrance(@PathVariable(name="warehouseId", required=true)  java.lang.Long warehouseId, @RequestBody  com.kc.phoenix.basic.model.dto.RackEntranceDto entranceRack);

    // @RequestMapping(method = {RequestMethod.POST}, value={"api/basic/warehouse/{warehouseId}/rack/disable"})
    // public Result<java.lang.Void> disableRack(@PathVariable(name="warehouseId", required=true)  java.lang.Long warehouseId, @RequestParam(name="lastUpdatedUser", required=true)  java.lang.String lastUpdatedUser, @RequestParam(name="rackCode", required=true)  java.lang.String rackCode);

    // @RequestMapping(method = {RequestMethod.POST}, value={"api/basic/warehouse/{warehouseId}/rack/add"})
    // public Result<com.kc.gb.device.common.adapter.dto.basic.rack.SimpleRackDto> addTempRack(@PathVariable(name="warehouseId", required=true)  java.lang.Long warehouseId, @RequestBody  com.kc.phoenix.basic.model.dto.rack.AddTempRackDto request);

    // @RequestMapping(method = {RequestMethod.GET}, value={"api/basic/warehouse/{warehouseId}/rack/console"})
    // public Result<com.kc.phoenix.basic.model.dto.rack.console.RackConsoleData> queryConsoleRack(@PathVariable(name="warehouseId", required=true)  java.lang.Long warehouseId, @RequestParam(name="mapCode", required=false)  java.lang.String mapCode, @RequestParam(name="lastUpdate", required=false)  java.lang.String lastUpdate);

    // @RequestMapping(method = {RequestMethod.DELETE}, value={"api/basic/warehouse/{warehouseId}/rack/forceDelete"})
    // public Result<java.lang.Boolean> forceDeleteRackAndSlot(@PathVariable(name="warehouseId", required=true)  java.lang.Long warehouseId, @RequestParam(name="rackCode", required=true)  java.lang.String rackCode);

    // @RequestMapping(method = {RequestMethod.POST}, value={"api/basic/warehouse/{warehouseId}/rack/updateHeading"})
    // public Result<java.lang.Void> updateHeading(@PathVariable(name="warehouseId", required=true)  java.lang.Long warehouseId, @RequestBody  com.kc.phoenix.basic.model.dto.rack.UpdateHeadingRequest request);

    // @RequestMapping(method = {RequestMethod.POST}, value={"api/basic/warehouse/{warehouseId}/rack/updateRackAttr"})
    // public Result<java.lang.Void> updateRackAttr(@PathVariable(name="warehouseId", required=true)  java.lang.Long warehouseId, @RequestBody  java.util.List<com.kc.gb.device.common.adapter.dto.basic.rack.UpdateRackAttr> rackAttrs);

    // @RequestMapping(method = {RequestMethod.GET}, value={"api/basic/warehouse/{warehouseId}/rack/findCollisionRack"})
    // public Result<com.kc.gb.device.common.adapter.dto.basic.rack.SimpleRackDto> findCollisionRack(@PathVariable(name="warehouseId", required=true)  java.lang.Long warehouseId, @RequestParam(name="rackCode", required=true)  java.lang.String rackCode);

    // @RequestMapping(method = {RequestMethod.POST}, value={"api/basic/warehouse/{warehouseId}/rack/findByPosition"})
    // public Result<java.util.List<com.kc.gb.device.common.adapter.dto.basic.rack.SimpleRackDto>> findByPosition(@PathVariable(name="warehouseId", required=true)  java.lang.Long warehouseId, @RequestBody  java.util.List<com.kc.phoenix.basic.model.dto.rack.RackPosition> rackPosition);

    // @RequestMapping(method = {RequestMethod.POST}, value={"api/basic/warehouse/{warehouseId}/rack/createNewRack"})
    // public Result<java.lang.Void> addRack(@PathVariable(name="warehouseId", required=true)  java.lang.Long warehouseId, @RequestBody  com.kc.phoenix.basic.model.dto.rack.CreateRackNewRequest request);

}
